package org.ehe.business.bom.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ehe.common.mybatis.core.domain.BaseEntity2;

import java.util.Date;

/**
 * BOM变更记录表实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_bom_change_log")
public class BomChangeLog extends BaseEntity2 {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * BOM主表ID
     */
    private Long bomId;

    /**
     * 变更类型：1-新增 2-修改 3-删除 4-替换
     */
    private Integer changeType;

    /**
     * 变更对象：1-BOM基本信息 2-BOM结构 3-物料信息
     */
    private Integer changeObject;

    /**
     * 变更前版本ID
     */
    private Long oldVersionId;

    /**
     * 变更后版本ID
     */
    private Long newVersionId;

    /**
     * 变更内容（JSON格式）
     */
    private String changeContent;

    /**
     * 变更原因
     */
    private String changeReason;

    /**
     * 影响分析
     */
    private String impactAnalysis;

    /**
     * 版本状态：0-草稿 1-审批中 2-已发布 3-已废弃
     */
    private Integer changeStatus;

    /**
     * 审批工作流实例ID
     */
    private Long workflowInstanceId;

    /**
     * 变更申请人ID
     */
    private Long changeApplicantId;

    /**
     * 变更申请人姓名
     */
    private String changeApplicantName;

    /**
     * 申请时间
     */
    private Date applyTime;

    /**
     * 审批人ID
     */
    private Long approverId;

    /**
     * 审批人姓名
     */
    private String approverName;

    /**
     * 审批时间
     */
    private Date approveTime;

    /**
     * 实施时间
     */
    private Date implementTime;

    /**
     * 描述
     */
    private String changeDescription;
}
